# -*- coding:utf-8 -*-
# 题目：
# 定义一个模拟ATM存款的函数和取钱的函数, 并将每次操作后余额打印出来
# 你身上有100元，存了60后，你身上还剩40，这时候ATM机有60
# 你取了20块，这时候ATM机有40
# ATM机存钱简单版
# my_money = 100
# atm_money = 0
#
#
# # 存钱
# def save_money():
#     global my_money, atm_money
#     money = int(input("请输入你要存款的金额："))
#     if money <= my_money:
#         atm_money += money
#         my_money -= money
#         print(f"存款成功\n当前银行卡余额为：{atm_money}\n钱包的余额为：{my_money}")
#     else:
#         print("钱包余额不足")
#
#
# # 取钱
# def get_money():
#     global my_money, atm_money
#     money = int(input("请输入你要取款的金额："))
#     if money <= atm_money:
#         atm_money -= money
#         my_money += money
#         print(f"取款成功\n当前银行卡余额为：{atm_money}\n钱包的余额为：{my_money}")
#     else:
#         print("银行卡余额不足")
#
#
# def main():
#     while True:
#         function = int(input("输入数字选择对应的功能: 1、存钱  2、取钱  3、退出: "))
#         if function == 1:
#             save_money()
#         elif function == 2:
#             get_money()
#         elif function == 3:
#             print("欢迎下次使用~~~")
#             break
#         else:
#             print("请重新选择")
#
#
# # 程序入口
# if __name__ == '__main__':
#     main()


# 递归：求1-20的阶乘1x2x3x4x5x...x20

def sum_num(num):
    if num == 1:
        return 1
    result = num * sum_num(num - 1)
    return result


num = sum_num(20)
print(num)
